package cz.vse.adventura.po1715.xshet00_shevtsova;

import cz.pecinovsky.english.pojj.adv_framework.game_gui.IGameG;
import cz.pecinovsky.english.pojj.adv_framework.game_txt.IGame;
import cz.pecinovsky.english.pojj.adv_framework.scenario.TypeOfScenario;
import cz.pecinovsky.english.pojj.adv_framework.scenario.ScenarioStep;
import cz.pecinovsky.english.pojj.adv_framework.scenario.AScenarioManager;

import cz.pecinovsky.english.pojj.adv_framework.test_util._Test_101;
import cz.pecinovsky.english.pojj.adv_framework.test_util._Test_115;
import cz.vse.adventura.po1715.xshet00_shevtsova.hra.Hra_destnik;


import static  cz.pecinovsky.english.pojj.adv_framework.scenario.TypeOfStep.*;



/*******************************************************************************
 * Instance třída {@code SSL} slouží jako správce scénářů
 *
 * @author Tatyana Shevtsova
 * @version 
 */
public class SSL extends AScenarioManager
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================

     /** Třída, jejíž instance jsou zde spravovány. */
    private final static Class<? extends IGame> TŘÍDA = Hra_destnik.class;

    /** Jmeno autora dane tridy. */
    private static final String autor = "SHEVTSOVA Tatyana";

    /** X-name autora/autorky třídy. */
    private static final String xname = "XSHET00";


    /***************************************************************************
     * Konstruktor plnohodnotné instance třídy {@link ScenarioStep}
     * vyžaduje následující parametry:
     *      String   příkaz;    //Příkaz realizující tetno krok scénáře
     *      String   zpráva;    //Zpráva vypsaná po zadání příkazu
     *      String   prostor;   //Prostor, v něž skončí hráč po zadání příkazu
     *      String[] východy;   //Aktuální východy z aktuálního prostoru
     *      String[] objekty;   //Objekty vyskytující se v daném prostoru
     *      String[] batoh;     //Aktuální obsah batohu
     *      TypeOfStep typTestu;  //Typ daného kroku testu
     */


    /***************************************************************************
     * Základní scénář popisující možný úspěšný průběh hry.
     */
    private static final ScenarioStep[] základní =
    {
        new ScenarioStep( "", //Název prvního příkazu musí být prázdný řetězec
             "\nVítáme vás v bytě. Na ulici prší." +
             "\nNajděte v bytě deštník."+
             "\n\n\nNacházíte se v místnosti: Předsíň" +
             "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
             "\nV místnosti se nachází: Botník" +
             "\nMáte v držení předměty:",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník" },
            new String[] { },
            tsSTART ),

         new ScenarioStep( "jdi KUCHYŇ",
            "\nPřesunul(a) jste se do místnosti: Kuchyň" +
        "\n\n Nacházíte se v místnosti:Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, časopis" +
          "\nMáte v držení předměty:",

            "KUCHYŇ",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis"},
            new String[] {},
            tsMOVE ),

     new ScenarioStep( "otevři časopis",
            "Úspěšně jste otevřel(a) časopis." +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, časopis, papír" +
          "\nMáte v držení předměty: ",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis","Papír" },
            new String[] { },
            tsNON_STANDARD ),

   new ScenarioStep( "vezmi papír",
            "\nVzal(a) jste předmět:Papír" +
        "\n\nNacházíte se v místnosti: KUCHYŇ" +
          "\nMůžete se přesunout do místností:Předsíň" +
          "\nV místnosti se nachází: Lednička, Časopis" +
          "\nMáte v držení předměty:Papír",

            "KUCHYŇ",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { "Papír" },
           tsPICK_UP ),

           new ScenarioStep( "zavři časopis",
            "Úspěšně jste zavřel(a) ČASOPIS."+
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností: Předsiň" +
          "\nV místnosti se nachází: Lednička, časopis, papír" +
          "\nMáte v držení předměty: Papír",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { "Papír"},
            tsNON_STANDARD ),

new ScenarioStep( "vezmi časopis",
           "\nVzal(a) jste předmět:Časopis" +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností:Předsíň" +
          "\nV místnosti se nachází: Lednička" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička"},
            new String[] { "Papír","Časopis" },
           tsPICK_UP ),

new ScenarioStep( "jdi předsíň",
            "\nPřesunul(a) jste se do místnosti: Předsíň" +
        "\n\nNacházíte se v místnosti: Předsíň" +
          "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
          "\nV místnosti se nachází: Botník" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník"},
            new String[] { "Papír", "Časopis" },
            tsMOVE ),

     new ScenarioStep( "jdi obývák",
            "\nPřesunul(a) jste se do místnosti: Obývák" +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize, Brýle" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize","Brýle"},
            new String[] { "Papír", "Časopis" },
            tsMOVE ),


      new ScenarioStep( "vezmi brýle",
            "Zadaný předmět nemůžete vzít, máte už obě ruce plné." +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností:Ložnice, Koupelna,Předsíň " +
          "\nV místnosti se nachází: Televize, Brýle" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize","Brýle" },
            new String[] { "Papír", "Časopis" },
           tsBAG_FULL ),


        new ScenarioStep( "polož časopis",
            "\nPoložil(a) jste předmět: Časopis" +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností: Koupelna, Ložnice, Předsíň" +
          "\nV místnosti se nachází:Televize, Brýle, Časopis" +
          "\nMáte v držení předměty: Papír",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] {"Televize","Brýle","Časopis" },
            new String[] { "Papír" },
            tsPUT_DOWN ),

              new ScenarioStep( "vezmi Brýle",
            "\nVzal(a) jste předmět:Brýle" +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize,Časopis" +
          "\nMáte v držení předměty: Brýle, Papír",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Časopis" },
            new String[] { "Brýle", "Papír" },
            tsPICK_UP ),

      new ScenarioStep( "přečti papír",
           "\nRozhodl(a) jste se přečíst vzkaz na papíře." +
          "\nJe ale psán příliš malým písmem, které je rozmazané" +
        "\n\nNacházíte se v místnosti: Obývák" +
           "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize,Časopis" +
          "\nMáte v držení předměty: Brýle, Papír",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Časopis" },
            new String[] { "Brýle", "Papír" },
            tsNON_STANDARD ),

        new ScenarioStep( "nasaď brýle",
            "\nNasadil(a) jste si brýle." +
       "\n\nNacházíte se v místnosti: Obývák" +
           "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize,Časopis" +
          "\nMáte v držení předměty: Papír",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Časopis" },
            new String[] {  "Papír" },
            tsNON_STANDARD ),


  new ScenarioStep( "přečti papír",
            "Na papíru je napsáno:" +
          "\nDeštník nachází pod postele, ale leží dost daleko a nemůžete si ho vzít " +
          "\nBudete-li mít problémy, něčím ji podložte." +
       "\n\nNacházíte se v místnosti: Obývák" +
           "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize,Časopis" +
          "\nMáte v držení předměty:  Papír",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Časopis" },
            new String[] { "Papír" },
            tsNON_STANDARD ),


            new ScenarioStep( "polož papír",
            "Položil(a) jste předmět: Papír" +
       "\n\nNacházíte se v místnosti: Obývák" +
           "\nMůžete se přesunout do místností: Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize,Časopis, Papír" +
          "\nMáte v držení předměty: ",

               "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Časopis","Papír" },
            new String[] {  },
            tsPUT_DOWN ),

            new ScenarioStep( "vezmi časopis",
            "\nVzal(a) jste předmět:Časopis" +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností:Ložnice, Koupelna, Předsíň" +
          "\nV místnosti se nachází: Televize, Papír" +
          "\nMáte v držení předměty:Časopis",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize", "Papír"},
            new String[] { "Časopis" },
           tsPICK_UP ),


            new ScenarioStep( "jdi ložnice",
            "\nPřesunul(a) jste se do místnosti: Ložnice" +
        "\n\nNacházíte se v místnosti: Ložnice" +
          "\nMůžete se přesunout do místností: Obývák" +
          "\nV místnosti se nachází: Postel" +
          "\nMáte v držení předměty: Časopis ",

            "Ložnice",
            new String[] { "Obývák" },
            new String[] { "Postel"},
            new String[] { "Časopis" },
            tsMOVE ),

    
             new ScenarioStep( "podlož postel časopis",
            "Rozhodl(a) jste se podložit předmět postel předmětem časopis." +
        "\n\nNacházíte se v místnosti: Ložnice" +
          "\nMůžete se přesunout do místností: Obývák" +
          "\nV místnosti se nachází: Postel, Deštník" +
          "\nMáte v držení předměty: ",

            "Ložnice",
            new String[] {  "Obývák" },
            new String[] { "Postel","Deštník" },
            new String[] { },
            tsNON_STANDARD ),

             new ScenarioStep( "vezmi deštník",
        "VITEZTVÍ!!!! Vyhral(a) si  Konec hry."+
            "\n\nNacházíte se v místnosti: Ložnice" +
          "\nMůžete se přesunout do místností:Obývák" +
          "\nV místnosti se nachází: Postel, Časopis, Deštník" +
          "\nMáte v držení předměty:Deštník",

            "Ložnice",
            new String[] {"Obývák"},
            new String[] { "Postel"},
            new String[] { "Deštník" },
           tsPICK_UP ),




              new ScenarioStep( "konec",
            "Konec hry. \nDěkujeme, že jste zkusil(a) naši hru.",
            "Ložnice",
            new String[] { "Obývák" },
            new String[] { "Postel" },
            new String[] { "Deštník" },
            tsEND )
        //V úspěsném scénáři nemusí být typ posledního příkazu tsEND
        //Hra_destnik může končit i prostým dosažením požadovaného cíle
    };
  static { ScenarioStep.setIndex(2); }

    /***************************************************************************
     * Základní chybový scénář definující reakce
     * na povinnou sadu chybových stavů.
     */
    private static final ScenarioStep[] chybový =
    {
       new ScenarioStep( "", //Název prvního příkazu musí být prázdný řetězec
             "\nVítáme vás v bytě. Na ulici prší." +
             "\nNajděte v bytě deštník."+
             "\n\n\nNacházíte se v místnosti: Předsíň" +
             "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
             "\nV místnosti se nachází: Botník" +
             "\nMáte v držení předměty:",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník" },
            new String[] {},
            tsSTART ),

        new ScenarioStep( "udělaj",
            "Tento příkaz neznám." +
          "\nChcete-li poradit, zadejte příkaz ?" +
        "\n\nNacházíte se v místnosti: Předsíň" +
         "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
             "\nV místnosti se nachází: Botník" +
             "\nMáte v držení předměty:",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník" },
            new String[] {},
             tsUNKNOWN ),


             new ScenarioStep( " ",
            "\nZadal(a) jste prázdný příkaz." +
       "\n\nNacházíte se v místnosti: Předsíň" +
          "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
             "\nV místnosti se nachází: Botník" +
             "\nMáte v držení předměty:",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník" },
            new String[] { },
            tsEMPTY ),



    new ScenarioStep( "jdi ven",
            "\nDo zadané místnosti se odsud nedá přejít."+
        "\n\nNacházíte se v místnosti: Předsíň" +
          "\nMůžete se přesunout do místností: Kuchyň, Obývák" +
          "\nV místnosti se nachází: Botník" +
          "\nMáte v držení předměty: ",

            "Předsíň",
            new String[] {"Obývák", "Kuchyň"  },
            new String[] { "Botník" },
            new String[] {  },
            tsBAD_NEIGHBOR ),

   new ScenarioStep( "jdi kuchyň",
          "Přesunul(a) jste se do místnosti: Kuchyň" +
        "\n\nNacházíte se v místnosti:Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, Časopis" +
          "\nMáte v držení předměty: ",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { },
            tsMOVE ),

             new ScenarioStep( "vezmi zrcadlo",
           "\nZadaný předmět v místnosti není: Zrcadlo" +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, Časopis" +
          "\nMáte v držení předměty: ",

           "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { },
            tsBAD_OBJECT ),

           


        new ScenarioStep("?",
            "\nPříkazy, které je možno v průběhu hry zadat:" +
                      "\n============================================",
            //Text pokračuje vyjmenováním příkazů a jejich popisů
            //a končí standardním popisem aktuální situace

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { },
            tsHELP ),


        new ScenarioStep( "polož Brýle",
           "\nPředmět není v batohu: Brýle" +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, Časopis" +
          "\nMáte v držení předměty: ",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { },
            tsNOT_IN_BAG ),


     new ScenarioStep( "otevři časopis",
           "Úspěšně jste otevřel(a) časopis."+
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností: Předsíň" +
          "\nV místnosti se nachází: Lednička, časopis, papír" +
          "\nMáte v držení předměty: ",

            "Kuchyň",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis","Papír" },
            new String[] { },
            tsNON_STANDARD ),

   new ScenarioStep( "vezmi papír",
            "\nVzal(a) jste předmět:Papír" +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností:Předsíň" +
          "\nV místnosti se nachází: Lednička, Časopis" +
          "\nMáte v držení předměty:Papír",

            "KUCHYŇ",
            new String[] { "Předsíň" },
            new String[] { "Lednička", "Časopis" },
            new String[] { "Papír" },
           tsPICK_UP ),


new ScenarioStep( "vezmi časopis",
            "\nVzal(a) jste předmět:Časopis" +
        "\n\nNacházíte se v místnosti: Kuchyň" +
          "\nMůžete se přesunout do místností:Předsíň" +
          "\nV místnosti se nachází: Lednička" +
          "\nMáte v držení předměty:Papír, Časopis",

            "KUCHYŇ",
            new String[] { "Předsíň" },
            new String[] { "Lednička"},
            new String[] { "Papír" ,"Časopis"},
           tsPICK_UP ),

           
           new ScenarioStep( "jdi předsíň",
            "\nPřesunul(a) jste se do místnosti: Předsíň" +
        "\n\nNacházíte se v místnosti: Předsíň" +
          "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
          "\nV místnosti se nachází: Botník" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Předsíň",
            new String[] { "Obývák", "Kuchyň" },
            new String[] { "Botník"},
            new String[] { "Papír","Časopis" },
            tsMOVE ),
//
//
//              new ScenarioStep( "vezmi botník",
//           "\nZadaný předmět nejde zvednout:Botník" +
//        "\n\nNacházíte se v místnosti: Předsíň" +
//          "\nMůžete se přesunout do místností: Obývák, Kuchyň" +
//          "\nV místnosti se nachází: Botník" +
//          "\nMáte v držení předměty: Papír",
//
//             "Předsíň",
//            new String[] { "Obývák", "Kuchyň" },
//            new String[] { "Botník"},
//            new String[] { "Papír" },
//            tsUNMOVABLE ),

     new ScenarioStep( "jdi obývák",
            "\nPřesunul(a) jste se do místnosti: Obývák" +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností: Ložnice, Koupelna,Předsíň" +
          "\nV místnosti se nachází: Televize, Brýle" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň" },
            new String[] { "Televize","Brýle"},
            new String[] { "Papír","Časopis" },
            tsMOVE ),


      new ScenarioStep( "vezmi brýle",
           "\nZadaný předmět nemůžete vzít, máte už obě ruce plné." +
        "\n\nNacházíte se v místnosti: Obývák" +
          "\nMůžete se přesunout do místností:Ložnice, Koupelna,Předsíň " +
          "\nV místnosti se nachází: Televize, Brýle" +
          "\nMáte v držení předměty: Papír, Časopis",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň"},
            new String[] { "Televize","Brýle" },
            new String[] { "Papír","Časopis" },
           tsBAG_FULL ),


  

        new ScenarioStep( "konec",
            "Co ukončit?",

            "Obývák",
            new String[] { "Ložnice", "Koupelna","Předsíň"},
            new String[] {  "Televize","Brýle"  },
            new String[] {  "Papír","Časopis"},
            tsEND ),
    };

    /***************************************************************************
     * Příkazy pro demonstrační scénář sloužící k analýze funkce
     * grafického uživatelského rozhraní.
     * Scénář má za úkol projít nejméně třemi místnostmi,
     * zvednout nejméně dva objekty a položit je v jiné místnosti,
     * než ve které je zvedal.
     * Příkazy pro demonstrační scénář neobsahuje úvodní prázdný příkaz,
     * ten si konstruktor scénáře doplní sám.
     */

     String[] demonstrační = {
                                "jdi KUCHYŇ",
                                "vezmi časopis",
                                "jdi předsíň",
                                "jdi obývák",
                                "vezmi brýle",
                                "jdi koupelna",
                                "polož časopis",
                                "polož brýle",
                                "konec"
     };
    /** Jediná instance této třídy. Spravuje všechny scénáře sdružené hry. */
    private static final SSL SS = new SSL();



//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Vrátí správce scénářů - jedinou instanci této třídy.
     *
     * @return Správce scénářů
     */
    public static SSL getInstance()
    {
        return SS;
    }

   

 /***************************************************************************
     * Vytvoří instanci představující správce scénářů hry.
     */
    public SSL ()
    {
        super(autor, xname, TŘÍDA);

        addScenario("Základní", TypeOfScenario.scHAPPY, základní);
        addScenario("Chybový",  TypeOfScenario.scMISTAKES, chybový);
        addScenario("Demo for GUI", demonstrační);
        seal();
    }


//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTOVACÍ METODY A TŘÍDY ==================================================

    /***************************************************************************
     * Základní test ověřující, jestli správce scénářů vyhovuje
     * zadným okrajovým podmínkám.
     */
    public static void testSprávceScénářů()
    {
        _Test_101 test = _Test_101.getInstance(SS);
        test.testScenarioManager();
    }


    /***************************************************************************
     * Testování funkce hry prováděné postupně
     * prostřednictvím všech scénářů daného správce
     */
    public static void prověrkaHry()
    {
        IGame     hra  = SS.getGame();
        _Test_101 test = _Test_101.getInstance(hra);
        test.testGame();
    }


    /***************************************************************************
     * Test ověřujícífunkci textové verze hry.
     */
    public static void testTXT()
    {
        IGame     hra  = SS.getGame();
        _Test_101 test = _Test_101.getInstance(hra);
        test.playGameByScenario(INDEX_GUI_TEST);
    }


    /***************************************************************************
     * Test demonstrující hraní hry na daném GUI.
     */
    public static void testGUI()
    {
        IGameG    hra  = (IGameG)SS.getGame();
        _Test_115 test = _Test_115.getInstance(hra);
        test.playGameByScenario(INDEX_GUI_TEST);
    }


    /** @param args Parametry příkazového řádku - nepoužívané. */
    public static void main( String[] args )
    {
        testTXT();
    }
}